#include <cstddef> // for size_t
#include <cstring>
class RangeError {
};
size_t CountValues(const char * data, size_t size) {
size_t ans = 0;
size_t cur = 0;
while (cur < size) {
if (cur + sizeof(size_t) > size) {
throw RangeError();
}
size_t len;
std::memcpy(&len, data + cur, sizeof(size_t));
cur += len;
ans++;
}
if (cur != size) {
throw RangeError();
}
return ans;
}