pigeons and holes problem