s(1, A, B, C, [1|D], E, F, G, H) :- if( ( [G,H]=[I,p], Btrue; user:rc(C,p/1,P,Q), R is O*Q, N=[S|T], p(P,R,B,C,S,E,U,I), (E==fail->true;F is U,T=[])) ), true, (F is A,D=[],E=fail) ).