boundary fill algo