good_fibonacci := proc (n)
	option remember;
	if ( not type(n, integer) ) then
	   RETURN(`incorrect input: positive integers please`);
	elif ( n < 0 ) then
	   RETURN(`incorrect input: positive integers please`);
	elif ( n=0 ) then
	   RETURN (0);
	elif ( n=1 ) then
	   RETURN (1);
	else
	   RETURN( good_fibonacci(n-1) + good_fibonacci(n-2) );
	fi;
end;
