Your question is enigmatic. What do you want to simplify? Flattening matrix into a list? Iterating over a list starting from a given index? What is N? You use 2D structure, so the time complexity is more like M*N already, not just N, but that really depends on specifics of this matrix.
Please note such operation is often called “rotating”, in this case rotating left. “Rotating” is usually used when working with integers and their bits, but I think it would be clear for most developers in the case of lists/arrays as well.
You can create a simple extension function to make your code cleaner:
Not a common enough operation to warrant putting in the standard library.
To follow onto broot’s implementation I would have it return a sequence, not a list because there is a cost to making a list if you don’t need it (which your example did not need). You can always add .toList() after the call to convert to a list.
So here is an alternate implementation (untested):