<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def mxmtg(m1, m2, nrow1, nc1c2, nrow2):
 """ Multiply a matrix and the transpose of a matrix, both of arbitrary size. http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/mxmtg_c.html :param m1: Left-hand matrix to be multiplied. :type m1: NxM-Element Array of floats :param m2: Right-hand matrix whose transpose is to be multiplied :type m2: NxM-Element Array of floats :param nrow1: Row dimension of m1 and row dimension of mout. :type nrow1: int :param nc1c2: Column dimension of m1 and column dimension of m2. :type nc1c2: int :param nrow2: Row dimension of m2 and column dimension of mout. :type nrow2: int :return: Product matrix. :rtype: NxM-Element Array of floats """

    m1 = stypes.toDoubleMatrix(m1)
    m2 = stypes.toDoubleMatrix(m2)
    mout = stypes.emptyDoubleMatrix(x=nrow2, y=nrow1)
    nrow1 = ctypes.c_int(nrow1)
    nc1c2 = ctypes.c_int(nc1c2)
    nrow2 = ctypes.c_int(nrow2)
    libspice.mxmtg_c(m1, m2, nrow1, nc1c2, nrow2, mout)
    return stypes.cMatrixToNumpy(mout)