I. Introduction
The study of streaming algorithms originated with the seminal paper of Morris [Mor78], which gave a low-memory randomized algorithm to approximately count a number of elements which arrive online in a stream. Roughly speaking, the idea is to have a counter which approximates , where is the number of elements seen in the stream so far. Each time the algorithm encounters an element from the stream, it increases the counter with probability about . As later proved by [Fla85], Morris’s algorithm achieves a constant-factor approximation error for streams of length at most N in space .