:- seqex(sfib/2), mutex(fib/2), det(fib/2), nofail(fib/2). 

sfib(0,0).
sfib(1,1).
sfib(M,N) :- M > 1, ((M1 is M-1, sfib(M1,N1)) //  (M2 is M-2, sfib(M2,N2))),
	     							 N is N1+N2.

fib(M,N) :- M > 15, ((M1 is M-1, fib(M1,N1)) //  (M2 is M-2, fib(M2,N2))),
	     							 N is N1+N2.
fib(M,N) :- M =< 15, ((M1 is M-1, sfib(M1,N1)) //  (M2 is M-2, sfib(M2,N2))),
	     							 N is N1+N2.

?- fib(26,M).

