using System;
using System.Collections.Generic;


class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param num int整型一维数组 
     * @return int整型二维数组
     */
    public List<List<int>> permute (List<int> num) {
        List<List<int>> res = new List<List<int>>();
        if(num.Count == 1){
            res.Add(new List<int>{num[0]});
            return res;
        }
        else{
            for(int i = 0; i < num.Count; i++){
                List<int> nnum = new List<int>(num);
                int g = nnum[i];
                nnum.RemoveAt(i);
                List<List<int>> pre = permute(nnum);
                foreach(List<int> part in pre){
                    part.Insert(0,g);
                    res.Add(part);
                }
            }
        }
        return res;
    }
}