:- shanoi(i,i,i,i,o).

shanoi(s(0),A,B,C,[mv(A,C)]).
shanoi(s(s(X)),A,B,C,M) :-
	eq(N1,s(X)),
	shanoi(N1,A,C,B,M1),
	shanoi(N1,B,A,C,M2),
	append(M1,[mv(A,C)],T),
	append(T,M2,M).

append([],L,L).
append([H|L],L1,[H|R]) :-
	append(L,L1,R).

eq(X,X).
