:- initialization(main).

tak(X,Y,Z,A) :- X =< Y, 
                Z = A.

tak(X,Y,Z,A) :- X > Y, 
                X1 is X - 1, 
                tak(X1,Y,Z,A1), 
                Y1 is Y - 1, 
                tak(Y1,Z,X,A2), 
                Z1 is Z - 1, 
                tak(Z1,X,Y,A3), 
                tak(A1,A2,A3,A).

main :-
    unix( argv([H|_]) ),
    number_atom(N,H),
	R1 is N >> 3,
	R2 is N / 2,
    N2 is R2 - R1,
    N3 is N - N2,
    tak(N,N2,N3,_),
    statistics,
    statistics_jit.