<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:

    int n;
vector<bool> visited;
vector<int> ans;
vector<int> curr;
int cnt;
int tar;
void dfs(int x)
{
    if(x==n)
    {
        cnt++;
        if(cnt==tar)ans=curr;
        return;
    }
    
    for(int i{1}; i<=n; i++)
    {
        if(!visited[i])
        {
            visited[i]=true;
            curr.push_back(i);
            dfs(x+1);
            visited[i]=false;
            curr.pop_back();
        }
    }
}
    string getPermutation(int A, int B) {
        cnt=0;
        n=A;
        tar=B;
    visited.clear();
    visited.resize(A+1);
    ans.clear();
    curr.clear();
    dfs(0);
    string res;
    for(auto u: ans)
    {
        res+=to_string(u);
    }
    
    return res;
        
    }
};
9700