<p>The set <code>[1, 2, 3, ...,&nbsp;n]</code> contains a total of <code>n!</code> unique permutations.</p>

<p>By listing and labeling all of the permutations in order, we get the following sequence for <code>n = 3</code>:</p>

<ol>
	<li><code>&quot;123&quot;</code></li>
	<li><code>&quot;132&quot;</code></li>
	<li><code>&quot;213&quot;</code></li>
	<li><code>&quot;231&quot;</code></li>
	<li><code>&quot;312&quot;</code></li>
	<li><code>&quot;321&quot;</code></li>
</ol>

<p>Given <code>n</code> and <code>k</code>, return the <code>k<sup>th</sup></code> permutation sequence.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> n = 3, k = 3
<strong>Output:</strong> "213"
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> n = 4, k = 9
<strong>Output:</strong> "2314"
</pre><p><strong class="example">Example 3:</strong></p>
<pre><strong>Input:</strong> n = 3, k = 1
<strong>Output:</strong> "123"
</pre>
<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= n &lt;= 9</code></li>
	<li><code>1 &lt;= k &lt;= n!</code></li>
</ul>

class Solution {
public:
    vector<int> ans,final_ans;
    int vis[10];
    int k1;
    void dfs(int i,int n)
    {
        if(k1<0) return;

        if(ans.size()==n)
        {
            k1--;
            //cout << ans.size() << " " << k1 << " "; 
            if(k1==0)
            {
                final_ans = ans;
                return;
            }
            return;
        }

        for(int j=0;j<n;j++)
        {
            if(!vis[j])
            {
                ans.push_back(j+1);
                vis[j]++;
                dfs(j,n);
                vis[j]--;
                ans.pop_back();
            }
            
        }
    }

    string getPermutation(int n, int k) {
        memset(vis,0,sizeof(vis));
        k1 =k;
        dfs(1,n);
        string an = "";
        for(int i=0;i<final_ans.size();i++)
        {
            an = an + to_string(final_ans[i]);
        }
        return an;
    }
};
9400