Implement Matrix(rows) (a list of equal-length lists; raise ValueError otherwise) with:
shape property, T property (transpose), __eq__+ and - with another matrix of the same shape (else ValueError)@ matrix multiplication (inner dimensions must match)* by a number (both sides)Matrix.identity(n) class method__pow__(k) for a non-negative integer k on square matrices, using repeated squaring