#создай конструктор который принимает лист и создает объект матрицы
#и передавай в него размеры
# n - колво строк, m - столбцов

def __init__(self, elems, n, m):
	self.elems = [el for el in elems]
	self.n = n
	self.m = m
	

#можешь еще проверять чтобы размеры совпадали и бросать исключение если не совпадают

def __add__(self, other):
	result = [0] * lent(self.matrix) # лист нулей такого же размера
	for i in range(len(self.matrix)):
		result[i] = self.matrix[i] + other.matrix[i]
	
	return Matrix(result, self.n, self.m)

# можно будет обращаться к элементам matrix[i, j]
	
def __set__(self, index_tuple, value):
	i, j = index_tuple
	self.elems[i * self.m + j]

def __get__(self, index_tuple):
	return self.elems[i * self.m + j]
	

	
# для матрицы с двумерным массивом просто исправь на этот код

    def __add__(self, other):
    	n, m = self.size()
    	#копируешь из self
    	result = [i[::] for i in self.matrix]
	for i in range(n):
            	for j in range(m):
            		result = result[i][j] += other.matrix[i][j]
        return Matrix(result)