If you're just trying to get elements moved around based on the other lists positions, you can loop over all elements of m and grab that element of l using list comprehension
l2 = [l[i - 1] for i in m]
But if you do want the ordering based on the other list, you're going to need to zip them together, sort on the index, then extract the elements
[y for x,y in sorted(zip(m,l))]