#include <stdio.h>
#include <stdlib.h>

typedef unsigned long long uint64;
int main(void)
{
	size_t count[8] = {0};

	size_t n;

	for (n = 0; n < 1024*1024; n++)
	{
		void  *ptr = (void *) malloc(n);
		uint64 header;

		if (!ptr)
		{
			fprintf(stderr, "OOM\n");
			return -1;
		}
		header = *((uint64 *) ((char *) ptr - sizeof(uint64)));
		count[header & 7]++;
		free(ptr);
	}
	for (n = 0; n <= 7; n++)
		printf("%zd: %zd\n", n, count[n]);
	return 0;
}
