1. Use multiple rounds of counting sort to iterate over input strings and construct a set of potential motif instances I, k-mers that are at Hamming distance of at most 2m from each string (Algorithm 2).
2. Construct candidate set C by building stem sets H(a, b) for k-mer pairs in I (Algorithm 3)
3. Prune all stems from C that do not satisfy motif property using rounds of counting sort (Algorithm 2, Section ‘Pruning using selection’)
4. Output remaining stems as motifs.