rendered paste body:-use_module(library(lists)).
keres(_,_,[],Akku,Output):-reverse(Akku,Output).
keres(K,Szo,[Fej|Lista],Akku,Output):-
(sub_atom(Szo,_,X,0,S),
sub_atom(Fej,0,X,_,S),
X =< K, X > 0)-> keres(K,Szo,Lista,[X-Fej|Akku],Output);
keres(K,Szo,Lista,Akku,Output).
valogat(_,[],_,Akku,Output):-reverse(Akku,Output).
valogat(K,[Fej|Lista],Marad,Akku,Output):-
(keres(K,Fej,Marad,[],Out1),
keres(K,Fej,Lista,[],Out2),
appeng(Out1,Out2,Out),
append(Marad,[Fej],Nulista),
Out=[])-> valogat(K,Lista,Nulista,Akku,Output);
valogat(K,Lista,Nulista,[Fej-Out|Akku],Output).