//Returns a pointer to the Nth value.
template<typename It, typename Ty>
It find_next(It first, It last, const Ty& val, int N)
{
for (; first != last; ++first)
{
if (*first == val) N--;
if (N == 0) break;
}
return first;
}
Ly9SZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgTnRoIHZhbHVlLgoKdGVtcGxhdGU8dHlwZW5hbWUgSXQsIHR5cGVuYW1lIFR5PgpJdCBmaW5kX25leHQoSXQgZmlyc3QsIEl0IGxhc3QsIGNvbnN0IFR5JiB2YWwsIGludCBOKQogICAgewoJCWZvciAoOyBmaXJzdCAhPSBsYXN0OyArK2ZpcnN0KQoJCQl7CgkJCWlmICgqZmlyc3QgPT0gdmFsKSBOLS07CgkJCWlmIChOID09IDApIGJyZWFrOwoJCQl9CgoJCXJldHVybiBmaXJzdDsKCX0=