Read input lazily. close #113