typedef unsigned int uint16_t;
typedef unsigned long long uint32_t;
typedef unsigned char uint8_t;
typedef signed int int16_t;
typedef signed long long int32_t;
typedef signed char int8_t;