Given a positive integer n, find the smallest integer that uses exactly the same digits as n and has a strictly greater value than n. If no such positive integer exists, return −1.
Note: If a valid answer exists but does not fit within a 32-bit signed integer, return −1.
Constraints: