a = vector(2^13-1) u = 1 T = [1] n = 0 m = 0 emit(t) = { if (n++ > #T, T = concat(T, vector(#T)); ); T[n] = t; apply (v -> w = v + 2^exponent(m++); if (w <= #a, a[w] = m), t); while (a[u], print (u " " a[u]); if (u++ > #a, quit; ); ); } { emit([0]); for (k = 1, oo, my (t = T[k]); if (#t > 1, emit(2*t[2..#t]); ); emit(concat( [2*t[1]+0, 2*t[1]+1], [2*v+1 | v <- t[2..#t]] )); ); } quit