legal(HS) :- mem(h(english,_,_,_,red),HS) & mem(h(spanish,dog,_,_,_),HS) & mem(h(_,_,_,coffee,green),HS) & mem(h(ukrainian,_,_,tea,_),HS) & left(h(_,_,_,_,white),h(_,_,_,_,green),HS) & mem(h(_,snake,winston,_,_),HS) & mem(h(_,_,kool,_,yellow),HS) & third(h(_,_,_,milk,_),HS) & first(h(norwegian,_,_,_,_),HS) & left(h(_,fox,_,_,_),h(_,_,chesterfield,_,_),HS) & left(h(_,_,kool,_,_),h(_,horse,_,_,_),HS) & mem(h(_,_,lucky,juice,_),HS) & mem(h(japanese,_,kent,_,_),HS) & left(h(norwegian,_,_,_,_),h(_,_,_,_,blue),HS) & mem(h(_,zebra,_,_,_),HS) first(H1,block(H1,H2,H3,H4,H5)) third(H3,block(H1,H2,H3,H4,H5)) left(H1,H2,block(H1,H2,H3,H4,H5)) left(H2,H3,block(H1,H2,H3,H4,H5)) left(H3,H4,block(H1,H2,H3,H4,H5)) left(H4,H5,block(H1,H2,H3,H4,H5)) mem(H,block(H,H2,H3,H4,H5)) mem(H,block(H1,H,H3,H4,H5)) mem(H,block(H1,H2,H,H4,H5)) mem(H,block(H1,H2,H3,H,H5)) mem(H,block(H1,H2,H3,H4,H))