big = 1 000 000 s = 0 S = Set([]) unseen = 1 seen(v) = if (v < big, bit test(s, v), set search(S, v)) see(v) = if (v < big, s = bit or(s, 2^v), S = set union(S, Set([v]))); while (seen(unseen), unseen++) { a = vector(100 000); m = 0; for (n=1, #a, if (n==1, a[n]=1, n==2, a[n]=0, a[n]=1; forstep (p=n-2, 1, -1, if (a[p]==a[n-1], a[n] = (n-1-p)*a[n-1]; break; ); ); ); if (!seen(a[n]), see(a[n]); print (m++ " " a[n]); if (m==10 000, break; ); ); ); } quit