find the $r$th block $s' [j']$ containing $a$’s; and use Ferragina and Venturini’s data structure and $B$ to find the position of the $(j - t)$th $a$ in $s' [j']$.

Alternatively, we can achieve $k$-th order entropy by partitioning the Burrows-Wheeler transform of the sequence and encoding each partition to zero-order entropy [@FMMN07]. This representation, however, is more useful for [*self-indexing*]{} than for supporting [$\mathsf{access}$]{}, [$\mathsf{rank}$]{}, and [$\mathsf{select}$]{} on the sequence. Self-indexes also represent a sequence, but they support other operations related to text searching. By using Theorem \[thm:partitioning\]$(i)$ to represent the partitions of Ferragina et al. [@FMMN07], on which we need to carry out [$\mathsf{access}$]{} and [$\mathsf{rank}$]{}, we achieve the following result, improving previous ones [@FMMN07; @GMR06].

Let $t[1..n]$ be a text string over alphabet $[1..\sigma]$, such that $\sigma=o(n)$.[^5] Then we can represent $s$ using $nH_k(s) + o(n)\lg\sigma$ bits of space, for any $k \le \alpha \log_\sigma n$ and constant $0<\alpha<1$. The following operations can be carried out: $(i)$ count the number of occurrences of a pattern $p[1..m]$ in $t$, in time ${\ensuremath{\mathcal{O}\left( {m\lg\lg\sigma} \right)}}$; $(ii)$ locate any such occurrence in time ${\ensuremath{\mathcal{O}\left( {\log_\sigma n \lg\lg n
\lg\lg\sigma} \right)}}$; $(iii)$ extract $t[l,r]$ in time ${\ensuremath{\mathcal{O}\left( {(r-l+\log_\sigma n \lg\lg n)\lg\lg\sigma} 