T(n) = if (n%2, 3*n+1, n/2) mx(n) = my (v=n); while (n>1, v=max(v,n=T(n))); v vv = vector(50 000, m, []) for (n=1, #vv, m=mx(n); if (m<=#vv, vv[m]=concat(vv[m], n))) apply (n -> print (k++ " " n), concat(vv)[1..10 000]) quit