init(A) :-
        init_1_1(A).
init_1_1(A) :-
        cFirst(A),
        mv(A).
cFirst(cons(cs,A)) :-
        cFirst_2_1(A).
cFirst_2_1(A) :-
        nOnly(A).
nOnly(cons(nc,A)) :-
        nOnly_3_1(A).
nOnly_3_1(A) :-
        nOnly(A).
nOnly(cons(nc,nil)).
mv(A) :-
        mv_5_1(A).
mv_5_1(A) :-
        mmv(A),
        tt_(tr(A,B)),
        mv(B).
tt_(tr(cons(cs,cons(nc,A)),cons(nc,cons(cs,B)))) :-
        tt__6_1(B),
        tt__6_1(A).
tt__6_1(A) :-
        tt_(mtr(cons(cs,cons(nc,A)),cons(nc,cons(cs,A)))).
tt_(tr(cons(nc,A),cons(nc,B))) :-
        tt__7_2(B),
        tt__7_1(A).
tt__7_2(A) :-
        tt_(mtr(cons(nc,B),cons(nc,A))),
        tt_(tr(B,A)).
tt__7_1(A) :-
        tt_(mtr(cons(nc,A),cons(nc,B))),
        tt_(tr(A,B)).
tt_(tr(nil,nil)).
mmv(A) :-
        mmv_9_1(A).
mmv_9_1(A) :-
        mmv(B),
        tt_(tr(B,A)).
mmv(A) :-
        mmv_10_1(A).
mmv_10_1(A) :-
        cFirst(A).
tt_(mtr(cons(nc,A),cons(nc,B))) :-
        tt__11_1(B),
        tt__11_1(A).
tt__11_1(A) :-
        tt_(mtr(A,A)).
tt_(mtr(A,B)) :-
        tt__12_2(B),
        tt__12_1(A).
tt__12_2(A) :-
        mv(_),
        mv(A).
tt__12_1(A) :-
        mv(A),
        mv(_).
mv(A) :-
        mv_13_1(A).
mv_13_1(A) :-
        mmv(A),
        atleast2cs(A).
atleast2cs(cons(cs,A)) :-
        atleast2cs_14_1(A).
atleast2cs_14_1(A) :-
        atleast1cs(A).
atleast2cs(cons(nc,A)) :-
        atleast2cs_15_1(A).
atleast2cs_15_1(A) :-
        atleast2cs(A).
atleast1cs(cons(cs,A)) :-
        atleast1cs_16_1(A).
atleast1cs_16_1(_).
atleast1cs(cons(nc,A)) :-
        atleast1cs_17_1(A).
atleast1cs_17_1(A) :-
        atleast1cs(A).
