private void twoSum(ArrayList<ArrayList<Integer>> ans, int a,
                int[] num, int begin) {
            int i = begin;
            int j = num.length - 1;
            while (i < j) {
                int sum = num[i] + num[j];
                if (sum < -a) {
                    i++;
                } else if (sum > -a) {
                    j--;
                } else {
                    ans.add(makeTriplet(a, num[i], num[j]));
                    do {
                        i++;
                    } while (i < j && num[i] == num[i - 1]);
                    do {
                        j--;
                    } while (i < j && num[j] == num[j + 1]);
                }
            }
        }