slow version - 111