using System.Collections.Generic;
IList<IList<int>> ps = new List<IList<int>>(){new List<int>()};
public IList<IList<int>> powerset = new List<IList<int>>();
public Stack<int> visited = new Stack<int>();
public IList<IList<int>> Subsets(int[] nums) {
public void Backtrack(int[] nums, int start)
List<int> backtracked = new List<int>();
foreach(int i in visited.ToArray())
powerset.Add(backtracked);
for(int i = start; i < nums.Length; i++)