a = vector(2^13) match(k, b) = { for (i=2, #b, if (k%2 != b[i], return (0); ); if (a[k]==0, my (bk=binary(k)); my (r=#b-i); for (j=1, r, if (b[i+j]!=bk[1+j], return (0); ); ); return (1); ); k = a[k]; ); return (1); } search(n) = { my (b=binary(n)); for (k=1, oo, a[n] = k; if (match(k, b), return; ); ); } for (n=1, #a, search(n); print (n " " a[n])) quit