same as 3Sum problem