core: add contest.input