valid loop