the remaining problem is that find Among returns 0 if it can't find any and that requires me to iterate haystack one more time to return -1. So I think two loops are not that bad.