You are given two strings s and target, both having length n, consisting of lowercase English letters.

Return the lexicographically smallest permutation of s that is strictly greater than target. If no permutation of s is lexicographically strictly greater than target, return an empty string.

A string a is lexicographically strictly greater than a string b (of the same length) if in the first position where a and b differ, string a has a letter that appears later in the alphabet than the corresponding letter in b.

 

Example 1:

Input: s = "abc", target = "bba"

Output: "bca"

Explanation:

Example 2:

Input: s = "leet", target = "code"

Output: "eelt"

Explanation:

Example 3:

Input: s = "baba", target = "bbaa"

Output: ""

Explanation:

 

Constraints: