Changed minor detail to load balancing: in order to avoid zero load, we compute l <- max(1, l) instead of l <- 1 + l, which gives a more accurate value