아동 학대: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
#%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%
편집 요약 없음
1번째 줄:
{{여러 문제|
<nowiki>#</nowiki>%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%##%#%#%#%#%#{{토막글|사회|범죄}}
{{출처 필요|날짜=2016-09-11}}
{{정리 필요|날짜=2016-09-11}}
}}
'''아동 학대'''(兒童虐待, child abuse, child maltreatment, cruelty to children)는 [[어린이]]를 괴롭히거나 가혹하게 대하는 [[학대]], 또는 보호자를 포함한 성인이 [[아동]]의 건강 또는 복리를 해치거나 정상적 발달을 저해할 수 있는 신체적·정신적·정서적 폭력이나 가혹 행위를 하는 것을 말한다.<ref>이승훈. [http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=102&oid=056&aid=0010005407 아버지 살해한 10대 집행유예…배경은?]. KBS. 2014년 3월 4일.</ref>
 
유형 중에서는 [[신체적 학대]]와 [[심리적 학대]]와 같은 보편적인 것 뿐만 아니라 [[방임]]도 아동학대에 포함되며, 아동 학대 때문에 [[어린이]]가 사망하는 경우도 있지만, [[어린이]]가 [[청소년]]은 물론, [[청년]], [[중년]]이 되었을 때 다른 [[범죄]]를 선택하는 경우도 있다. 현재 [[독일]], [[스페인]], [[영국]], [[이탈리아]], [[프랑스]] 등 [[유럽]]과 [[대한민국]]은 아동 학대에 대한 [[법]]이 서로 다르다.
 
== 같이 보기 ==
* [[아동 복지]]
* [[아동복지법]]
* [[아동 노동]]
* [[아동 성매매]]
* [[가정폭력]]
* [[노인 학대]]
 
== 각주 ==
{{각주}}
 
== 외부 링크 ==
{{위키공용분류|Child abuse}}
*[http://korea1391.org/new_index/main/index.php 아동보호전문기관]
* [http://health.mw.go.kr/HealthInfoArea/HealthInfo/View.do?idx=3680 국가건강정보포털 의학정보]
* {{언어링크|en}} [http://www.cdc.gov/violenceprevention/childmaltreatment/index.html 미국 질병통제예방센터 아동학대 정보]
 
{{학대}}
{{교육 문제}}
{{Authority control}}
{{토막글|사회|범죄}}
 
[[분류:아동 학대| ]]