join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!
join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!join!