x=[0]; N=2100; for last=2:(N+1) forbidden=[]; for first=1:(last-2) xfirst=x(first); nforbidden=floor((last-first)/2); forbidden=[forbidden,x((first+1):(first+nforbidden))+x((last-1):-1:(last-nforbidden))-xfirst]; end forbidden=unique(forbidden(forbidden>=0)); xlast=0; forbiddenindex=1; while forbiddenindex<=length(forbidden) & xlast==forbidden(forbiddenindex) xlast=xlast+1; forbiddenindex=forbiddenindex+1; end x(last)=xlast; end