Тартар прав, решение состоит в том, чтобы изменить
def input = it.readLine()
Для
def input = Integer.parseInt( it.readLine() )
Или (более Groovy)
def input = it.readLine().toInteger()
(причина, по которой он использует значение ASCII, равное 1, заключается в том, что groovy преобразует отдельные строки символов в их значения ASCII, если вы попытаетесь привести их к целому числу ... Утверждалось, что это сбивает с толку, и это может изменение в будущих версиях groovy, но пока оно остается из соображений обратной совместимости)