use long long to come across some problem, maybe not a good idea