Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given an m x n matrix mat that has its rows sorted in non-decreasing order and an integer k.
You are allowed to choose exactly one element from each row to form an array.
Return the kth smallest array sum among all possible arrays.
 
Please complete the following python code precisely:
```python
class Solution:
    def kthSmallest(self, mat: List[List[int]], k: int) -> int:
```