Why doesn’t top down approach work here ?
not at all, its quite easy
Maintain 2D array with M+1, N+1 dimensions.
 … [M+1] = -INF
 … [N+1] = -INF
 =  =  = 0
No corner case needs to be handled.
If you solve this problem with top down, then optimal sub-substructute property of this problem would break for DP. Only bottom up approach devises substructure property.
This problem is not same in reverse. Here, ordering/direction matters.