C# Simple O(rol*col) solution
Approach\nBuild Matrix\n10 6 3 1\n 4 3 2 1\n 1 1 1 0\nif left number is greater or equal than K then navigate to left \nelse navigate to bottom and reduce K by 
# Approach\nBuild Matrix\n10 6 3 1\n 4 3 2 1\n 1 1 1 0\nif left number is greater or equal than K then navigate to left \nelse navigate to bottom and reduce K by left number\n\n# Complexity\n- Time complexity: O(row*col)\n\n- Space complexity: O(row*col)\n\n# Code\n```csharp []\npublic class Solution {\n    public string KthSmallestPath(int[] destination, int k) {\n        int n = Math.Max(destination[0], destination[1]);\n        int[,] matrix = new int[n+1,n+1];\n\n        for(int i = 0; i<=n; i++) {\n            matrix[n, i]=matrix[i, n]=1;\n        }\n\n        for(int i = n - 1; i>= 0; i--) {\n            for(int j = i; j>=0; j--) {\n                matrix[i,j] = matrix[j,i] = matrix[i+1, j] + matrix[i,j+1];\n            }\n        }\n\n        int posY = 0, posX = 0;\n        StringBuilder resultBuilder = new StringBuilder();\n\n        if (destination[1]>destination[0]) {\n            posY = destination[1] - destination[0];\n        }\n        else {\n            posX = destination[0] - destination[1];\n        }\n\n        while (posY < n && posX < n) {\n            if (matrix[posY, posX+1] >= k) {\n                resultBuilder.Append(\'H\');\n                posX++;\n            }\n            else {\n                resultBuilder.Append(\'V\');\n                k -= matrix[posY, posX+1];\n                posY++;\n            }\n        }\n\n        resultBuilder.Append(posY < posX ? \'V\' : \'H\', Math.Abs(posY - posX));\n        return resultBuilder.ToString();\n    }\n}\n```
['C#']