%['alldiff-c5-gnu.pl'], codeine(aldif,xml),codeine_maxint(5).

q([A1,A2,A3,B1,B2,B3,D1,D2,C1,C2,C3,C4,C5]) :-
fd_varnames([A1,A2,A3,B1,B2,B3,D1,D2,C1,C2,C3,C4,C5],['A1','A2','A3','B1','B2','B3','D1','D2','C1','C2','C3','C4','C5']),

fd_cstrname(fd_domain([A1,A2,A3],1,3), fddom),
fd_cstrname(fd_domain([B1,B2,B3],1,3), fddom),
fd_cstrname(fd_domain([D1,D2],1,3), fddom),
fd_cstrname(fd_domain([C1,C2,C3,C4,C5],1,5), fddom),

fd_cstrname(fd_all_different([A1,A2,A3]), aAcircle),
fd_cstrname(fd_all_different([B1,B2,B3]), bBcircle),
fd_cstrname(fd_all_different([C1,C2,C3,C4,C5]), cCcircle),
fd_cstrname(fd_all_different([D1,D2,C3]), dDcircle),
fd_cstrname(fd_all_different([A1,D1,C1,B1]), aABCDcircle),

%fd_cstrname(A2#>A3, asym1),
%fd_cstrname(B2#>B3, bsym2),
%fd_cstrname(C2#>C4, c1sym3),
%fd_cstrname(C4#>C5, c2sym4),

fd_labeling([A1,A2,A3,B1,B2,B3,D1,D2,C1,C2,C3,C4,C5]).

qq(N) :-
findall(A,q(A),L),length(L,N).
