midElement([],Index,MidIndex,-1):-I is Index-1,MidIndex is I//2,!. midElement([H|T],Index,M,H):-I is Index+1,midElement(T,I,M,_),M=Index,!. midElement([_|T],Index,M,Q):-I is Index+1,midElement(T,I,M,Q),!. midElementList(List,MidElement):-midElement(List,0,_,MidElement).