Processes one row at a time using disjoint sets. Randomly merges adjacent cells in the same row, then ensures at least one downward connection per set. Can generate infinitely tall mazes.