코드 결과값이 이해가 가지 않습니다

#include <stdio.h>
void OUTPUT(int);
main(void)
{
	OUTPUT(1);

	return 0;
}

void OUTPUT(int num)
{
	printf("level %d\n", num);
	if (num < 4)
		OUTPUT(num + 1);
	printf("LEVEL %d\n", num);
}

#include <stdio.h>
void OUTPUT(int);
main(void)
{
	OUTPUT(1);

	return 0;
}

void OUTPUT(int num)
{
	printf("level %d\n", num);
	if (num < 4)
		OUTPUT(num + 1);
	printf("LEVEL %d\n", num);
}`코드 샘플`

image

프로그램을 실행했는데 LEVEL4까지 나오는건 이해를 하였습니다. 그런데 그 뒤에 어떻게 LEVEL 3, LEVEL 2, LEVEL 1이 나오는지 잘 모르겠습니다.

질문글 작성 방법입니다. 참고하시고

아까와 같은 실수는 가급적이면 삼가해 주시면 좋겠읍니다