[Python] O((m+n)^2) solution, explained
Actualy, I was suprised, why this problem is marked as Hard: all you need to do is to on each moment of time see how many options we have if we go to the right 
Actualy, I was suprised, why this problem is marked as Hard: all you need to do is to on each moment of time see how many options we have if we go to the right and if we can afford this step or no. If we are out of options, that is `k = 1`, then we build the rest of the sequence either with `H` or with `V`.\n\n**Complexity**: time complexity is `O((m+n)^2)` for time: we use `comb()` function `O(m+n)` times, where complexity of each evaluation is `O(m+n)` as well. Space complexity is `O(1)`.\n\n```\nclass Solution:\n    def kthSmallestPath(self, destination, k):\n        m, n, ans = destination[0], destination[1], ""\n        for i in range(m+n):\n            if k == 1:  #no options left\n                ans += "H"*n + "V"*m\n                break\n\n            if k <= comb(m+n-1, m):\n                n -= 1\n                ans += "H"\n            else:\n                ans += "V"\n                k -= comb(m+n-1, m)\n                m -= 1\n                \n        return ans\n```\n\nIf you have any questions, feel free to ask. If you like solution and explanations, please **Upvote!**
['Combinatorics']