// size_t is a type definition for unsigned long long
// This means that writing size_t is the excact same as
// writing unsigned long long
always use size_t for the size of anything or for index.
Alias of one of the fundamental unsigned integer types.
It represents the size of any object in bytes and returned
by sizeof operator. It is used for array indexing and counting.
It can never be negative.