:- use_module(library(fd)).
smm(S,E,N,D,M,O,R,Y) :-
[S,E,N,D,M,O,R,Y] :: [0..9],
constrain([S,E,N,D,M,O,R,Y]),
labeling([S,E,N,D,M,O,R,Y]).
constrain([S,E,N,D,M,O,R,Y]) :-
S #\= 0, M #\= 0,
alldifferent([S,E,N,D,M,O,R,Y]),
1000*S + 100 * E + 10 * N + D
+ 1000*M + 100 * O + 10 * R + E
#= 10000 * M + 1000*O + 100 * N + 10 * E + Y.