So we're getting to the point where I understand why we're using M
Couple things: automatic sorting of arrays using self-balancing trees, O(log(n)) lookup times for pretty much anything (sometimes O(1))
Downside is it's weird: data is basically encoded in the dimensions of the array