Codes from http://www.urionlinejudge.com.br/