use signed long long for ints