smile :- write('Smile!').

smiles(N) :-
    between(1, N, Line), (
	    between(Line, N, Count),
	    smile,
	    (Count = N, nl)
	    ), false.

:- smiles(3); true, halt.