import java.util.*;
public class Solution {
public ArrayList<ArrayList<Integer>> subsets (int[] S) {
// write code here
ArrayList<ArrayList<Integer>> ret = new ArrayList<>();
ArrayList<Integer> a = new ArrayList<>();
ret.add(a);
for (int i = 0; i < S.length; i++) {
int size = ret.size();
for (int j = 0; j < size;j++) {
ArrayList<Integer> tmp = new ArrayList<>();
tmp.addAll(ret.get(j));
tmp.add(S[i]);
ret.add(tmp);
}
}
for (int i = 0; i < ret.size(); i++) {
for (int j = 0; j < ret.size()-1; j++) {
if (ret.get(j).size() > ret.get(j+1).size()) {
ArrayList<Integer> tmp = ret.get(j);
ret.set(j, ret.get(j+1));
ret.set(j+1, tmp);
}
}
}
return ret;
}
}