C# Simple Solution
\npublic int[][] MatrixReshape(int[][] nums, int r, int c) {\n        int curRows = nums.Length;\n        int curColumns = nums[0].Length;\n        \n        if
```\npublic int[][] MatrixReshape(int[][] nums, int r, int c) {\n        int curRows = nums.Length;\n        int curColumns = nums[0].Length;\n        \n        if((curRows * curColumns) == (r * c)){\n            int[][] result = new int[r][];\n            \n          for(int i = 0; i < r; i++) //this loop is because i cant just declare int [][] transpose = new int[m][n]... c# things\n        {\n            result[i] = new int[c];\n        }\n            int x =0, y =0;\n            for(int i =0; i < r; i++){\n                for(int j =0; j< c; j++){\n                    if((x < curRows) || (y < curColumns)){\n                        if(y >= curColumns){\n                            y = 0;\n                            x++;                     \n                        }\n                        result[i][j] = nums[x][y++];\n                    }              \n                }\n            }\n         return result;   \n        }\n            \n        return nums;\n               \n    }\n```
[]