s = 0 unseen = 1 seen(v) = bit test(s, v) see(v) = s = bit or(s, 2^v); while (seen(unseen), unseen++) \\ Kolakoski's sequence k = vector(11 000) k[1] = 1 k[2] = 2 u = 0 for (r=1, oo, for (i=1, k[r], k[u++] = 2-(r%2); if (u==#k, break (2)))) compute(n) = { for (v=unseen, oo, if (!seen(v) && k[n]!=k[v], see(v); return (v); ); ); } for (n=1, 10 000, print (n " " compute(n))) quit