buildstring(A, B, C) :- atom_concat('besetzt(', A, D), atom_concat(D, ',', E), atom_concat(E, B, F), atom_concat(F, ')', C).
% helper function to convert an inner list
convertih(_, _, [], []).
convertih(A, B, [H|T], C) :- H \== x, Z is B + 1, convertih(A, Z, T, C).
convertih(A, B, [x|T], [C|D]) :- buildstring(A, B, C), Z is B + 1, convertih(A, Z, T, D).
% start function to convert an inner list
converti(A, B, L) :- convertih(A, 1, B, L).
% helper function
converth(_, [], []).
converth(A, [H|T], C) :- converti(A, H, C1), Z is A + 1, converth(Z, T, C2), append(C1, C2, C).
% main function
convert(A, B) :- converth(1, A, B).