q([A1,A2,A3,B1,B2,B3,D1,D2,C1,C2,C3,C4,C5]) :-

fd_domain([A1,A2,A3],1,3), fddom),
fd_domain([B1,B2,B3],1,3), fddom),
fd_domain([D1,D2],1,3), fddom),
fd_domain([C1,C2,C3,C4,C5],1,5), fddom),

fd_all_different([A1,A2,A3]), aAcircle),
fd_all_different([B1,B2,B3]), bBcircle),
fd_all_different([C1,C2,C3,C4,C5]), cCcircle),
fd_all_different([D1,D2,C3]), dDcircle),
fd_all_different([A1,D1,C1,B1]), aABCDcircle),

/*
A2#>A3  % asym1
B2#>B3  % bsym2
C2#>C4  % c1sym3
C4#>C5  % c2sym4
*/


fd_labeling([A1,A2,A3,B1,B2,B3,D1,D2,C1,C2,C3,C4,C5]).

