printl_list([H|X]):-
    put_code(H), printl_list(X).
    
read_line_codes(A, L) :-
	get_code(C),
	(   C == -1
	->  (  A == []
	    ->  L = end_of_file
	    ;   reverse(A, L)
	    )
	;   (  C == 0'\n
	    -> reverse(A, L)
	    ;  read_line_codes([C|A], L)
	    )
	).
    
:- initialization(main).
main :- 
	repeat,
	read_line_codes([], X),
	(X == [52,50]
	-> (
		halt
		)
	; (
		nl,
		printl_list(X)
	)),
	X == end_of_file,
	halt.