public List<List<Integer>> subsets(int[] s){
        Arrays.sort(s);
        int num = s.length ;
        int total = (int)Math.pow(2,num);
        List<List<Integer>>  result= new ArrayList<List<Integer>>();
        for(int i=0;i < total;i++)
            result.add(new ArrayList<Integer>());
        for(int i =0;i < num;i++)
            for(int  j=0;j < total;j++)
                if(((j >> i) & 1)==1)
                    result.get(j).add(s[i]);
        return result;
    }