# Добавьте в предыдущий класс следующие методы:
# 1)_add__ принимающий вторую матрицу того же размера и возвращающий сумму матриц
# 2)__mul__ принимающий число типа int или float и возвращающий матрицу, умноженную на скаляр
# 3)__rmul__ делающий то же самое, что и __mul__. Этот метод будет вызван в том случае, аргументнаходится #справа. Можно написать __rmul__ = __mul__
from sys import stdin
class Matrix(object):
def __init__(self, matrix):
self.matrix = [i[::] for i in matrix]
def __str__(self):
return '\n'.join(['\t'.join(['%s' % i for i in row])
for row in self.matrix])
def size(self):
return (len(self.matrix)), len(self.matrix[0])
def __add__(self, other):
for i in range(len(self.matrix)):
for j in range(len(self.matrix)):
result = Matrix(self.matrix[i][j] + other.matrix[i][j])
return result
exec(stdin.read())
IyDQlNC+0LHQsNCy0YzRgtC1INCyINC/0YDQtdC00YvQtNGD0YnQuNC5INC60LvQsNGB0YEg0YHQu9C10LTRg9GO0YnQuNC1INC80LXRgtC+0LTRizoKIyAxKV9hZGRfXyDQv9GA0LjQvdC40LzQsNGO0YnQuNC5INCy0YLQvtGA0YPRjiDQvNCw0YLRgNC40YbRgyDRgtC+0LPQviDQttC1INGA0LDQt9C80LXRgNCwINC4INCy0L7Qt9Cy0YDQsNGJ0LDRjtGJ0LjQuSDRgdGD0LzQvNGDINC80LDRgtGA0LjRhgojIDIpX19tdWxfXyDQv9GA0LjQvdC40LzQsNGO0YnQuNC5INGH0LjRgdC70L4g0YLQuNC/0LAgaW50INC40LvQuCBmbG9hdCDQuCDQstC+0LfQstGA0LDRidCw0Y7RidC40Lkg0LzQsNGC0YDQuNGG0YMsINGD0LzQvdC+0LbQtdC90L3Rg9GOINC90LAg0YHQutCw0LvRj9GACiMgMylfX3JtdWxfXyDQtNC10LvQsNGO0YnQuNC5INGC0L4g0LbQtSDRgdCw0LzQvtC1LCDRh9GC0L4g0LggX19tdWxfXy4g0K3RgtC+0YIg0LzQtdGC0L7QtCDQsdGD0LTQtdGCINCy0YvQt9Cy0LDQvSDQsiDRgtC+0Lwg0YHQu9GD0YfQsNC1LCDQsNGA0LPRg9C80LXQvdGC0L3QsNGF0L7QtNC40YLRgdGPICPRgdC/0YDQsNCy0LAuINCc0L7QttC90L4g0L3QsNC/0LjRgdCw0YLRjCBfX3JtdWxfXyA9IF9fbXVsX18KCgpmcm9tIHN5cyBpbXBvcnQgc3RkaW4KCgpjbGFzcyBNYXRyaXgob2JqZWN0KToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXRyaXgpOgogICAgICAgIHNlbGYubWF0cml4ID0gW2lbOjpdIGZvciBpIGluIG1hdHJpeF0KCiAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICByZXR1cm4gJ1xuJy5qb2luKFsnXHQnLmpvaW4oWyclcycgJSBpIGZvciBpIGluIHJvd10pCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHJvdyBpbiBzZWxmLm1hdHJpeF0pCgogICAgZGVmIHNpemUoc2VsZik6CiAgICAgICAgcmV0dXJuIChsZW4oc2VsZi5tYXRyaXgpKSwgbGVuKHNlbGYubWF0cml4WzBdKQoKCiAgICBkZWYgX19hZGRfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKHNlbGYubWF0cml4KSk6CiAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihzZWxmLm1hdHJpeCkpOgogICAgICAgICAgICAgICAgcmVzdWx0ID0gTWF0cml4KHNlbGYubWF0cml4W2ldW2pdICsgb3RoZXIubWF0cml4W2ldW2pdKQogICAgICAgIHJldHVybiByZXN1bHQKCmV4ZWMoc3RkaW4ucmVhZCgpKQ==