abacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacabaabacaba
