class Solution {
public:
vector<vector<int>> res={};
void helper(vector<int> nums, vector<int> curres){
if (nums.size() == 0) res.push_back(curres);
for (int i=0; i<nums.size(); i++){
vector<int> nxtnums = nums;
curres.push_back(nums[i]);
nxtnums.erase(nxtnums.begin()+i);
helper(nxtnums, curres);
curres.pop_back();
}
return;
}
vector<vector<int>> permute(vector<int>& nums) {
helper(nums, vector<int> ());
return res;
}
};