# Align Two Mesh with same origin point

I have two meshes in my file found here:

I want my upper mesh m2 to have the same location, origin point and bounding box positions as the lower mesh m1. I have the below script which adjusts the size of the bounding box on y and z axis to match the lower mesh but how I can make it have the same position with the exact same origin point of the lower mesh so that they are exactly on top of each other. Any advice please?

So as shown below, using python I want the uppermesh m2 be positioned exactly on top of lower mesh m1 and after that set it's origin to be the exact place as the origin of m1.

import bpy

scene= bpy.context.scene
m1 = bpy.data.objects['m1']
m2 = bpy.data.objects['m2']

m1Bound = m1.matrix_world.to_quaternion() * m1.dimensions
m2Bound = m2.matrix_world.to_quaternion() * m2.dimensions
ratio = abs(m1Bound.y) / abs(m2Bound.y)
m2.scale *= ratio

bpy.ops.object.select_all(action='DESELECT')
m2.select = True
scene.objects.active = m2
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)

m1Bound = m1.matrix_world.to_quaternion() * m1.dimensions
m2Bound = m2.matrix_world.to_quaternion() * m2.dimensions
ratio = abs(m1Bound.z) / abs(m2Bound.z)
m2.scale.z *= ratio


bpy.ops.object.select_all(action='DESELECT')