three solved
four solved
four with improved performance