I actually updated/edited it and put it in replace of my original post
You are still making the same mistake of comparing an array for equality with another array using ==. This just tests if they are the same array object and not if the contents are the same.
Remember you are passing in arrays of arrays so when you do m1[i] you are asking for the array at index i of the m1 array of arrays variable. If you want to compare the arrays long hand (ie not using the method I suggested earlier) then you need another loop so you compare each element in this array with each element in the other array ie if ( m1[i][j] == m2[i][j] ). Remember, before you run the loop do simple checks such as if both arrays are the same object then they must be equal, if the arrays are not the same length they can't be equal etc.