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):-
( Marad = []-> (keres(K,Fej,Lista,[],Out),append(Marad,[Fej],Nulista),Out=[]-> valogat(K,Lista,Nulista,Akku,Output);valogat(K,Lista,Nulista,[Fej-Out|Akku],Output));
(keres(K,Fej,Marad,[],Out1),keres(K,Fej,Lista,[],Out2),append(Out1,Out2,Out),Out=[]-> valogat(K,Lista,Nulista,Akku,Output);valogat(K,Lista,Nulista,[Fej-Out|Akku],Output))).
max_k_atfedok(K,L1,L2):-valogat(K,L1,[],[],L2).