I don’t see how to do that, especially given that it’s not a matter of meeting some threshold, but rather of maximizing a value that can grow arbitrarily.
Actually, you don’t even need the ways-to-arrange argument. Suppose I want to predict/control the value of a particular nonnegative integer n (the number of cubbyholes), with monotonically increasing utility, e.g. U(n)=n. Then the encoding length E(n) of a given outcome must be longer than the code length for each greater outcome: E(n)>E(n+k). However, code lengths must be a nonnegative integer number of code symbols in length, so for any given encoding E(n) there are at most E(n) shorter code lengths, so the encoding E must fail no later than n+E(n)+1.
Ah, this is the same as Daniel’s question. Take a look at the answers there.